home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
376-400
/
disk_376
/
toollibrary
/
src
/
toolproto.h
< prev
Wrap
C/C++ Source or Header
|
1992-05-06
|
11KB
|
278 lines
#include <exec/types.h>
#include <intuition/intuition.h>
#include <proto/exec.h>
#include <proto/dos.h>
#include <proto/mathieeedoubbas.h>
#include <proto/mathieeedoubtrans.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define E 2.718281828
#define PPI 3.14159265358979323846
#define Mul(a,b) NewMul(a,b)
#define Add(a,b) NewAdd(a,b)
#define Sub(a,b) NewSub(a,b)
#define Div(a,b) NewDiv(a,b)
#define Flt(a) NewFlt(a)
#define Fix(a) NewFix(a)
#define Cmp(a,b) NewCmp(a,b)
#define Abs(a) NewAbs(a)
#define Neg(a) NewNeg(a)
#define Pow(a,b) NewPow(a,b)
#define Tst(a) NewTst(a)
#define Log10(a) NewLog10(a)
#define Floor(a) NewFloor(a)
#define ACos(a) NewAcos(a)
#define ASin(a) NewAsin(a)
#define ATan(a) NewAtan(a)
#define Sin(a) NewSin(a)
#define Cos(a) NewCos(a)
#define Tan(a) NewTan(a)
#define Log(a) NewLog(a)
#define Sqr(a) NewSqr(a)
double NewSub(double a,
double b);
double NewSqr(double a);
double NewSin(double a);
double NewCos(double a);
double NewTan(double a);
double NewPow(double a,
double b);
double NewNeg(double a);
double NewMul(double a,
double b);
double NewLog10(double a);
double NewLog(double a);
double NewFlt(LONG a);
LONG NewFix(DOUBLE a);
double NewFloor(double a);
double NewDiv(double a,
double b);
double NewCos(double a);
LONG NewCmp(double a,
double b);
double NewCeil(double a);
double NewAtan(double a);
double NewAsin(double a);
double NewAdd(double a,
double b);
double NewAcos(double a);
double NewAbs(double a);
LONG NewTst(DOUBLE a);
struct info
{
USHORT code;
struct IntuiMessage *Nachricht;
ULONG NachrichtenArt;
APTR IAddress;
SHORT MouseX,MouseY;
};
struct Block
{
LONG Links,Rechts;
LONG RechenArt,Valid;
LONG Konstante;
LONG Fehler;
char *String;
DOUBLE Wert;
struct Block *Left,*Right;
};
#define MAXCHARS 500
struct HilfsStruktur
{
char Formel[MAXCHARS];
char Hilfe[MAXCHARS];
DOUBLE Variable,Konstante1,Konstante2,Konstante3,Konstante4;
LONG Fehler;
};
struct Konstanten
{
DOUBLE k1,k2,k3,k4;
};
/* Fehlercodes */
#define DIVBYZERO 1 /* Es wurde durch 0 geteilt */
#define LOGNEG 2 /* Es wurde von Zahl <= 0 der Log gebildet */
#define SQRTNEG 4 /* Es wurde von Zahl <0 die Wurzel gebildet */
#define ATRIG 8 /* Es wurde von Zahl >1 oder <-1 asin/acos gebildet */
#define UNPAKLAM 16 /* Unpaarige Klammern */
#define TEST 32
#define NOFUNC 64 /* Keine Funktion eingegeben */
#define NO_KONST 128 /* Keine solche Konstante */
#define NO_MEM 256 /* Kein Speicher für weiteren Block */
#define POWERROR 512 /* Negative Zahl hoch Bruch wurde versucht */
#define NO_FUNC 1024 /* Keine Funktion gefunden */
/* Rechenarten */
#define ADDI 1
#define SUBT 2
#define MULT 3
#define DIVI 4
#define POWE 5
#define SINU 6
#define COSI 7
#define TANG 8
#define ASIN 9
#define ACOS 10
#define ATAN 11
#define LOG1 12
#define LNAT 13
#define ABSO 14
#define SIGU 15
#define SQRT 16
#define FLOO 17
#define X 18
#define MKON 19 /* Math. Konstante */
#define UKON 20 /* User Konstante */
#define ZIFF 21 /* Ziffern */
#define KLAM 22
VOID __asm Print(register __a1 struct RastPort *RP,
register __a0 char *text,
register __d0 LONG col,
register __d1 LONG xpos,
register __d2 LONG ypos);
ULONG __asm EventAbfrage(register __a0 struct Window *Window,
register __a1 struct info *MsgInfo);
LONG __asm request(register __d0 char *JaPointer,
register __d1 char *NeinPointer,
register __d2 char *BodyPointer);
LONG __asm ev(register __d0 LONG l,register __d1 LONG r,register __d2 struct Block *block);
VOID __asm Free_Block(register __a0 struct Block *First);
VOID __asm Free_Konst(register __a0 APTR Zeiger);
APTR Init_Konst(VOID);
LONG __asm Set_Konst_P(register __a0 APTR Zeiger,register __d0 LONG Nummer,register __d1 DOUBLE *Wert_P);
LONG Set_Konst(APTR Zeiger,LONG Nummer,DOUBLE Wert);
struct Block * __asm Init_Mem(register __a0 char *string);
LONG __asm Init_Block(register __a0 struct Block *Zeiger);
LONG __asm check(register __d0 LONG z1,register __d1 LONG z2,
register __d2 LONG l,register __d3 LONG r,
register __a0 char *string);
LONG __asm checkback(register __d0 LONG z1,register __d1 LONG z2,
register __d2 LONG l,register __d3 LONG r,
register __a0 char *string);
VOID __asm copy(register __d0 LONG i,register __d1 LONG Anzahl,
register __d2 char *Ziel,register __d3 char *Source);
double sgn(DOUBLE x);
LONG BereichsKontr(DOUBLE b);
LONG __asm PreCalc(register __d0 struct Block *Zeiger,register __d1 APTR Konst);
DOUBLE __asm GetKonst(register __a0 APTR Konst,register __d1 LONG Nummer);
DOUBLE Calc(struct Block *Zeiger,DOUBLE x);
LONG __asm AnzahlKlammern(register __a0 char *string);
VOID __asm left(register __a0 char *Ziel,
register __a1 char *string,
register __d0 LONG Anzahl);
VOID __asm right(register __a0 char *Ziel,
register __a1 char *string,
register __d0 LONG Anzahl);
VOID __asm mid(register __a0 char *Ziel,
register __a1 char *string,
register __d0 LONG Anfang,
register __d1 LONG Anzahl);
DOUBLE stof(char *string);
VOID ftos(char *Ziel,
DOUBLE Zahl,
LONG Nachkomma);
VOID __asm UmwFtoS(register __a0 char *Ziel,
register __a1 DOUBLE *Zahl1,
register __d0 LONG Nachkomma);
DOUBLE Vorkomma(DOUBLE Zahl);
VOID __asm testfunktion(register __a0 LONG *test);
LONG search(char *string);
LONG __asm NewRequest(register __a0 struct Window *AktWindow,
register __d0 char *JaPointer,
register __d1 char *NeinPointer,
register __d2 char *BodyPointer);
VOID __asm Box(register __a1 struct RastPort *RastPort, /* Der RastPort */
register __d0 LONG xs, /* Start: X */
register __d1 LONG ys, /* Start: Y */
register __d2 LONG xe, /* Ende : X */
register __d3 LONG ye); /* Ende : Y */
VOID __asm Center(register __a1 struct Window *Window, /* Das Fenster */
register __a0 char *string, /* Der Text */
register __d0 LONG Color, /* Die Farbe */
register __d1 LONG y_Pos); /* Die Y-Pos. */
VOID __asm Gadget_On(register __a0 struct Gadget *Gadget, /* Das Gadget */
register __d1 struct Window *Window); /* Das Fenster */
VOID __asm Gadget_Off(register __a0 struct Gadget *Gadget, /* Das Gadget */
register __a1 struct Window *Window); /* Das Fenster */
LONG __asm GetPropPosH(register __a0 struct Gadget *Gadget,/* Das Gadget */
register __d0 LONG MaxPos); /* Max. Pos. */
LONG __asm GetPropPosV(register __a0 struct Gadget *Gadget,/* Das Gadget */
register __d0 LONG MaxPos); /* Max. Pos. */
VOID __asm SetPropPosH(register __a0 struct Gadget *Gadget,/* Das Gadget */
register __a1 struct Window *Window,
register __d0 LONG MaxPos, /* Die MaxPos */
register __d1 LONG Schrittweite, /* Schrittweite */
register __d2 LONG NewPos); /* Neue Posit. */
VOID __asm SetPropPosV(register __a0 struct Gadget *Gadget,/* Das Gadget */
register __a1 struct Window *Window,
register __d0 LONG MaxPos, /* Die MaxPos */
register __d1 LONG Schrittweite, /* Schrittweite */
register __d2 LONG NewPos); /* Neue Posit. */
LONG __asm PrepareTmpRas(register __a1 struct RastPort *RP);/* Der RastPort */
VOID __asm ClearTmpRas(register __a1 struct RastPort *RP); /* Der RastPort */
LONG __asm PrepareArea(register __a1 struct RastPort *RP,
register __d0 LONG MaxPoints);
VOID __asm ClearArea(register __a1 struct RastPort *RP);
VOID __asm Fak(register __a0 DOUBLE *Ziel,
register __d0 LONG i);
VOID __asm NuK(register __a0 DOUBLE *Ziel,
register __d0 LONG n,
register __d1 LONG k);
VOID __asm GetKonst_P(register __a0 DOUBLE *Ziel,
register __a1 APTR Konst,
register __d0 LONG Nummer);
LONG __asm Calc_P(register __a0 DOUBLE *Ziel,
register __a1 struct Block *Zeiger,
register __a2 DOUBLE *x);
VOID __asm berechnen(register __a0 DOUBLE *Ziel,
register __d0 UBYTE *string,
register __d1 DOUBLE *var,
register __d2 struct Konstanten *kon,
register __d3 LONG *Fehler);
VOID __asm UmwStoF(register __a0 DOUBLE *Ziel,
register __a1 char *string);
struct Menu * __asm LastMenu(register __a0 struct Menu *menu);
struct MenuItem * __asm LastItem(register __a0 struct Menu *menu);
struct MenuItem * __asm LastSub(register __a0 struct Menu *menu);
struct Menu * __asm AddMenu(register __a0 struct Menu *menu,
register __a1 char *Titel,
register __d0 USHORT Flags);
struct Item * __asm AddItem(register __a0 struct Menu *menu,
register __a1 char *Titel,
register __d0 USHORT Flags,
register __d1 char HotKey);
struct Item * __asm AddSub(register __a0 struct Menu *menu,
register __a1 char *Titel,
register __d0 USHORT Flags,
register __d1 char HotKey);
struct MenuItem * __asm GetItem(register __a0 struct Menu *menu,
register __a1 char *Titel,
register __d0 USHORT Flags,
register __d1 char HotKey);
VOID __asm ClearMenu(register __a0 struct Menu *menu);
struct MenuItem * __asm FreeItem(register __a0 struct MenuItem *item);
struct Menu * __asm FreeMenu(register __a0 struct Menu *menu);
VOID __asm NewSetMenuStrip(register __a1 struct Window *Window,
register __a0 struct Menu *menu);